package week8;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;

public class Main3 {
	public static void main(String[] args) 
	{
		Map<String, Integer> map = new TreeMap<String,Integer>();
		Scanner in = new Scanner(System.in);
//		int n=0;
//		String[] word = new String[10000];
//		int[] num = new int[10000];
//		for (int i = 0; i < 10000; i++) {
//			num[i]=1;
//		}
		
		while(true){
			String a = in.next();
			if(a.equals("!!!!!"))
				break;
			if(map.get(a)==null)
				map.put(a,new Integer(1));
			else
			{
				map.put(a,map.get(a).intValue()+1);
			}
		}
		System.out.println(map.size());
//		for (int i = 0; i < n; i++) {
//			map.put(word[i], num[i]);
//		}
		List<Map.Entry<String,Integer>> list = new ArrayList<>(map.entrySet());
		Collections.sort(list,(o1, o2) -> {
			if(o1.getValue()!=o2.getValue())
				return o2.getValue() - o1.getValue();
			return o1.getKey().toString().compareTo(o2.getKey());
		});
		int x=0;
		for(Map.Entry<String,Integer> entry:list)
		{
			if(x<10)
			{
				System.out.println(entry.getKey()+"="+entry.getValue());
				x++;
			}
		}
	}
}
